# Avoid multiple calls to find_package to append duplicated properties to the targets
include_guard()########### VARIABLES #######################################################################
#############################################################################################
set(google-cloud-cpp_FRAMEWORKS_FOUND_RELEASE "") # Will be filled later
conan_find_apple_frameworks(google-cloud-cpp_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_FRAMEWORK_DIRS_RELEASE}")

set(google-cloud-cpp_LIBRARIES_TARGETS "") # Will be filled later


######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET google-cloud-cpp_DEPS_TARGET)
    add_library(google-cloud-cpp_DEPS_TARGET INTERFACE IMPORTED)
endif()

set_property(TARGET google-cloud-cpp_DEPS_TARGET
             PROPERTY INTERFACE_LINK_LIBRARIES
             $<$<CONFIG:Release>:${google-cloud-cpp_FRAMEWORKS_FOUND_RELEASE}>
             $<$<CONFIG:Release>:${google-cloud-cpp_SYSTEM_LIBS_RELEASE}>
             $<$<CONFIG:Release>:absl::any;absl::flat_hash_map;absl::memory;absl::optional;absl::time;CURL::libcurl;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB;google-cloud-cpp::common;googleapis::googleapis;gRPC::grpc++;protobuf::libprotobuf;googleapis::googleapis;gRPC::grpc++;protobuf::libprotobuf;googleapis::googleapis;gRPC::grpc++;protobuf::libprotobuf;googleapis::googleapis;gRPC::grpc++;protobuf::libprotobuf;absl::function_ref;absl::memory;absl::time;gRPC::grpc++;google-cloud-cpp::iam_protos;google-cloud-cpp::longrunning_operations_protos;google-cloud-cpp::rpc_error_details_protos;google-cloud-cpp::rpc_status_protos;google-cloud-cpp::common;gRPC::grpc++;protobuf::libprotobuf;absl::memory;google-cloud-cpp::iam_protos;google-cloud-cpp::grpc_utils;google-cloud-cpp::common;nlohmann_json::nlohmann_json;absl::memory;absl::strings;absl::str_format;absl::time;absl::variant;Crc32c::crc32c;CURL::libcurl;OpenSSL::SSL;OpenSSL::Crypto;ZLIB::ZLIB;google-cloud-cpp::rest_internal;google-cloud-cpp::common>
             APPEND)

####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the
####### google-cloud-cpp_DEPS_TARGET to all of them
conan_package_library_targets("${google-cloud-cpp_LIBS_RELEASE}"    # libraries
                              "${google-cloud-cpp_LIB_DIRS_RELEASE}" # package_libdir
                              google-cloud-cpp_DEPS_TARGET
                              google-cloud-cpp_LIBRARIES_TARGETS  # out_libraries_targets
                              "_RELEASE"
                              "google-cloud-cpp")    # package_name

# FIXME: What is the result of this for multi-config? All configs adding themselves to path?
set(CMAKE_MODULE_PATH ${google-cloud-cpp_BUILD_DIRS_RELEASE} ${CMAKE_MODULE_PATH})

########## COMPONENTS TARGET PROPERTIES Release ########################################

    ########## COMPONENT google-cloud-cpp::storage #############

        set(google-cloud-cpp_google-cloud-cpp_storage_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_storage_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_storage_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_storage_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_storage_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_storage_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_storage_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_storage_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_storage_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_storage_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_storage_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_storage_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_storage_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_storage")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::storage
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_storage_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::storage
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_storage_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::storage PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::storage PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::storage PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::storage PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_storage_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT google-cloud-cpp::iam #############

        set(google-cloud-cpp_google-cloud-cpp_iam_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_iam_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_iam_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_iam_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_iam_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_iam_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_iam_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_iam_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_iam_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_iam_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_iam_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_iam_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_iam_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_iam")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::iam
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_iam_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::iam
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_iam_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::iam PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::iam PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::iam PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::iam PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT google-cloud-cpp::grpc_utils #############

        set(google-cloud-cpp_google-cloud-cpp_grpc_utils_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_grpc_utils_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_grpc_utils_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_grpc_utils_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_grpc_utils_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_grpc_utils_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_grpc_utils_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_grpc_utils_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_grpc_utils_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_grpc_utils_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_grpc_utils_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_grpc_utils_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_grpc_utils_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_grpc_utils")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::grpc_utils
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_grpc_utils_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::grpc_utils
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_grpc_utils_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::grpc_utils PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::grpc_utils PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::grpc_utils PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::grpc_utils PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_grpc_utils_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT google-cloud-cpp::rpc_status_protos #############

        set(google-cloud-cpp_google-cloud-cpp_rpc_status_protos_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_rpc_status_protos_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_rpc_status_protos_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_rpc_status_protos_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_rpc_status_protos_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_rpc_status_protos_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_rpc_status_protos_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_rpc_status_protos_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_rpc_status_protos_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_rpc_status_protos")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::rpc_status_protos
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::rpc_status_protos
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_rpc_status_protos_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::rpc_status_protos PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rpc_status_protos PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rpc_status_protos PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rpc_status_protos PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_status_protos_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT google-cloud-cpp::rpc_error_details_protos #############

        set(google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::rpc_error_details_protos
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::rpc_error_details_protos
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::rpc_error_details_protos PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rpc_error_details_protos PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rpc_error_details_protos PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rpc_error_details_protos PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rpc_error_details_protos_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT google-cloud-cpp::longrunning_operations_protos #############

        set(google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::longrunning_operations_protos
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::longrunning_operations_protos
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::longrunning_operations_protos PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::longrunning_operations_protos PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::longrunning_operations_protos PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::longrunning_operations_protos PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_longrunning_operations_protos_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT google-cloud-cpp::iam_protos #############

        set(google-cloud-cpp_google-cloud-cpp_iam_protos_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_iam_protos_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_iam_protos_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_iam_protos_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_iam_protos_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_iam_protos_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_iam_protos_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_iam_protos_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_iam_protos_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_iam_protos_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_iam_protos_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_iam_protos_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_iam_protos_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_iam_protos")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::iam_protos
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_iam_protos_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::iam_protos
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_iam_protos_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::iam_protos PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::iam_protos PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::iam_protos PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::iam_protos PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_iam_protos_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT google-cloud-cpp::rest_internal #############

        set(google-cloud-cpp_google-cloud-cpp_rest_internal_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_rest_internal_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_rest_internal_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_rest_internal_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_rest_internal_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_rest_internal_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_rest_internal_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_rest_internal_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_rest_internal_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_rest_internal_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_rest_internal_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_rest_internal_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_rest_internal_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_rest_internal")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::rest_internal
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_rest_internal_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::rest_internal
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_rest_internal_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::rest_internal PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rest_internal PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rest_internal PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::rest_internal PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_rest_internal_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT google-cloud-cpp::common #############

        set(google-cloud-cpp_google-cloud-cpp_common_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(google-cloud-cpp_google-cloud-cpp_common_FRAMEWORKS_FOUND_RELEASE "${google-cloud-cpp_google-cloud-cpp_common_FRAMEWORKS_RELEASE}" "${google-cloud-cpp_google-cloud-cpp_common_FRAMEWORK_DIRS_RELEASE}")

        set(google-cloud-cpp_google-cloud-cpp_common_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET google-cloud-cpp_google-cloud-cpp_common_DEPS_TARGET)
            add_library(google-cloud-cpp_google-cloud-cpp_common_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET google-cloud-cpp_google-cloud-cpp_common_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'google-cloud-cpp_google-cloud-cpp_common_DEPS_TARGET' to all of them
        conan_package_library_targets("${google-cloud-cpp_google-cloud-cpp_common_LIBS_RELEASE}"
                                      "${google-cloud-cpp_google-cloud-cpp_common_LIB_DIRS_RELEASE}"
                                      google-cloud-cpp_google-cloud-cpp_common_DEPS_TARGET
                                      google-cloud-cpp_google-cloud-cpp_common_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "google-cloud-cpp_google-cloud-cpp_common")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET google-cloud-cpp::common
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_LIBRARIES_TARGETS}>
                     APPEND)

        if("${google-cloud-cpp_google-cloud-cpp_common_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET google-cloud-cpp::common
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         google-cloud-cpp_google-cloud-cpp_common_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET google-cloud-cpp::common PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::common PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::common PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET google-cloud-cpp::common PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${google-cloud-cpp_google-cloud-cpp_common_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## AGGREGATED GLOBAL TARGET WITH THE COMPONENTS #####################
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::storage APPEND)
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::iam APPEND)
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::grpc_utils APPEND)
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::rpc_status_protos APPEND)
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::rpc_error_details_protos APPEND)
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::longrunning_operations_protos APPEND)
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::iam_protos APPEND)
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::rest_internal APPEND)
    set_property(TARGET google-cloud-cpp::google-cloud-cpp PROPERTY INTERFACE_LINK_LIBRARIES google-cloud-cpp::common APPEND)

########## For the modules (FindXXX)
set(google-cloud-cpp_LIBRARIES_RELEASE google-cloud-cpp::google-cloud-cpp)
